package com.cskaoyan.javase._2variable._3notice;

/**
 * 基本数据类型的数据类型转换
 * java是强类型语言,数据类型不能随便去改变,但也不是不能改变,有些场景下数据类型是可以发生变化的.
 *
 * 数据类型转换的分类:
 *      1.自动类型转换,指的是由编译器自动完成类型转换,无需程序员做额外操作.
 *          以基本数据类型的自动类型转换为例子,当把取值范围小的数值类型转换成取值范围大的数据类型时,一般是安全的不会出问题的,这个过程由编译器自动完成.
 *          小 到 大
 *          思考: 基本数据类型的自动类型是绝对安全的吗?是绝对不会出错的吗?
 *          不是的,因为浮点数有有效位数的限制,把整型自动转换成浮点型就会出现精度丢失的情况
 *
 *      2.强制类型转换,指的是由程序员指示编译器来完成类型转换,需要特殊的语法.
 *          大 到 小
 *          把长江黄河的水倒进杯子里,这在绝大多数情况下都是不可能的.一旦小取值范围的数据类型装不下,就会出现数据溢出,数据就失真了
 *          强转的语法:
 *          强转后的数据类型 变量名 = (强转后的数据类型)强转的变量名
 *          强转是很危险的,出现数据失真的情况可能性很大,如无必要,不要做强转
 *
 *
 * @since 16:14
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo2 {
    public static void main(String[] args) {
        long a = 100;
        // float b = 0.1;

        float b = 1234567891;
        System.out.println(b);

        // 快捷键 alt + 回车
        // .cast
        float c = ((float) 0.1);
        float d = 0.1F;
        System.out.println(c == d);

        // 取整
        double f = 1.2;
        System.out.println(((int) f));

        String str = "hello";
    }
}
